#include <stdint.h>
#include <stdio.h>

#define CHAR_BIT  8
#define INT32_MIN  (-2147483647-1)

#define safe_div_func_int32_t_s_s(_si1,_si2) \
  ({ int32_t si1 = (_si1); int32_t si2 = (_si2) ; \
  ((((int32_t)(si2)) == ((int32_t)0)) || ((((int32_t)(si1)) == (INT32_MIN)) && (((int32_t)(si2)) == ((int32_t)-1)))) \
  ? ((int32_t)(si1)) \
  : (((int32_t)(si1)) / ((int32_t)(si2)));})

#define safe_rshift_func_uint16_t_u_s(_left,_right) \
        ({ uint16_t left = (_left); int right = (_right) ; \
          ((((int)(right)) < ((uint16_t)0)) \
                         || (((int)(right)) >= sizeof(uint16_t)*CHAR_BIT)) \
                        ? ((uint16_t)(left)) \
                        : (((uint16_t)(left)) >> ((int)(right)));})

uint8_t i = 4UL;
uint32_t j = 0;
int m = 1;
int main(int argc, char* argv[]) {
  int32_t n = 0x0707E039L;
  for (i = 0; i < 23; i += 1) {
    for (j = -12; j > 21; j += 9) {
      safe_div_func_int32_t_s_s(1, n);
    }
    n = safe_rshift_func_uint16_t_u_s(1, m);
  }
  printf("%d,%d\n", i, j);
  return 0;
}
